package kuonjisai;

public class J28_PrinterInterface {

// 인터페이스를 사용하지 않은 경우
	// 프린트 제조사를 예를 들업좀

	public static void main(String[] args) {
	HPPrinter h = new HPPrinter();
	h.speedPrint();
	CannonPrinter c = new CannonPrinter();
	c.hyperPrint();
	EpsonPrinter e = new EpsonPrinter();
	e.nanoPrint();
	
	HPPrinterDriver hd = new HPPrinterDriver();
	hd.print();
	CannonPrinterDriver cd = new CannonPrinterDriver();
	cd.print();
	EpsonPrinterDriver ed = new EpsonPrinterDriver();
	ed.print();
	
	
	// 인터페이스르루 이용한 다형성
	Printable p = new HPPrinterDriver();
	p.print();
	p = new CannonPrinterDriver();
	p.print();
	p = new EpsonPrinterDriver();
	p.print();
	
	
	} //main

} // class



class HPPrinter{
	
	public void speedPrint() {
		System.out.println( "남들보다 빠르게 ! - HP" );
	}
	
}//HPPrinter

class CannonPrinter{
	
	public void hyperPrint(){
		System.out.println( "절대 속도에 도전 - canon" );
	}
} // Cannon



class EpsonPrinter {
	public void nanoPrint() {
		System.out.println("정말 빠르당 - EPson");
	}
}

interface Printable {

	public void print();
	
	
	
	
}



class HPPrinterDriver implements Printable {

	@Override
	public void print() {
		System.out.println( "남들보다 빠르게 ! - HP" );
	}
	
}

class CannonPrinterDriver implements Printable {

	@Override
	public void print() {
		System.out.println("절대 속도에 도전 - canon" );
	}
	
}

class EpsonPrinterDriver implements Printable {

	@Override
	public void print() {
		System.out.println("정말 빠르당 - EPson");
	}
	
}












